package com.vcredit.creditcat.persistence;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.vcredit.creditcat.model.UserRole;

/**
 * 用户角色关系DAO
 *
 */
public interface UserRoleMapper{
	
	/**
	 * 新增用户角色关系
	 * @param obj 用户角色关系对象
	 */
	public void insert(UserRole obj);
	
	/**
	 * 修改用户角色关系
	 * @param obj 用户角色关系对象
	 */
	public void update(UserRole obj);
	
	/**
	 * 删除用户角色关系
	 * @param id 用户Id
	 */
	public void delete(Long id);
	
	/**
	 * 查询全部用户角色关系
	 * @return 用户角色关系集合
	 */
	public List<UserRole> findAll();
	
	/**
	 * 根据匹配查询
	 * @param obj 用户角色关系对象
	 * @return 用户角色关系集合
	 */
	public List<UserRole> find(UserRole obj);
	
	/**
	 * 根据Id查询
	 * @param id 用户Id
	 * @return 用户角色关系对象
	 */
	public UserRole findById(Long id);
	
	
	/**
	 * 根据角色查询用户角色关系集合
	 * @param roleId 角色Id
	 * @return 用户角色关系集合
	 */
	public List<UserRole> findByRoleId(Long roleId);
	
	/**
	 * 查询用户未被删除的用户关系记录
	 * @param roleId 角色Id
	 * @param statusDel 逻辑删除状态
	 * @return
	 */
	public List<UserRole> findByUnDelUser(@Param("roleId")Long roleId, @Param("statusDel")Integer statusDel);
	
	/**
	 * 删除用户角色关系
	 * @param roleId 角色Id
	 */
	public void deleteByRoleId(Long roleId);
	
}
